ช่องตัวเลข

ช่องตัวเลขจะเก็บตัวเลขเป็น value และสตริงเป็น text เวลา value จะเป็นตัวเลขที่ถูกต้องตามที่กำหนดโดยข้อจำกัดที่กำหนดให้กับ ฟิลด์ในการสร้าง ข้อความอาจเป็นสตริงใดๆ ที่ป้อนลงในตัวแก้ไข

ช่องตัวเลข

ช่องตัวเลขที่มีเครื่องมือแก้ไขเปิดอยู่

ช่องตัวเลขบนบล็อกที่ยุบ

การสร้างวิดีโอ

JSON

{
  "type": "example_number",
  "message0": "number: %1",
  "args0": [
    {
      "type": "field_number",
      "name": "FIELDNAME",
      "value": 100,
      "min": 0,
      "max": 100,
      "precision": 10
    }
  ]
}

JavaScript

Blockly.Blocks['example_number'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("number:")
        .appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
  }
};

เครื่องมือสร้างตัวเลขจะทำงานดังต่อไปนี้

value ควรแคสต์เป็นตัวเลข หากไม่ใช่ 0 จะถูกนำมาใช้

การเรียงอันดับ

JSON

JSON สำหรับช่องตัวเลขมีลักษณะดังนี้

{
  "fields": {
    "FIELDNAME": 0
  }
}

โดยที่ FIELDNAME คือสตริงที่อ้างอิงช่องตัวเลข และ value คือค่าที่จะใช้กับฟิลด์ ค่า เป็นไปตามกฎเดียวกันกับค่าตัวสร้าง

XML

XML สำหรับช่องตัวเลขมีลักษณะดังนี้

<field name="FIELDNAME">0</field>

แอตทริบิวต์ name ของโหนด field มีสตริงที่อ้างอิงตัวเลข และ text ภายในของโหนดคือ value เพื่อนำไปใช้กับฟิลด์ ค่าข้อความภายในเป็นไปตามกฎเดียวกันกับค่าตัวสร้าง

ข้อจำกัด

คุณสามารถตั้งค่าข้อจำกัดในคำจำกัดความฟิลด์ หรือโดยการใช้ setConstraints

ค่าต่ำสุด

ค่า min จะกำหนดค่าน้อยที่สุด/เป็นค่าลบมากที่สุดที่อนุญาตให้ใช้ได้ มี

ค่าสูงสุด

ค่า max จะกำหนดค่ามากที่สุด/เป็นบวกมากที่สุดที่ช่องนี้อนุญาต มี

การปัดเศษ

precision จะปัดเศษค่าให้เป็นจำนวนทวีคูณที่ใกล้เคียงที่สุดของความแม่นยำ ประเภท ใช้เพื่อให้ฟิลด์ยอมรับเฉพาะพหุคูณของ .01, 10, 42 ฯลฯ

ข้อจำกัดทั่วไป

จำนวนที่เป็นบวก

หากต้องการบังคับให้ช่องยอมรับเฉพาะตัวเลขจำนวนบวก ให้ตั้งค่า min เป็น 1.

จำนวนเต็ม

หากต้องการบังคับให้ช่องยอมรับเฉพาะจำนวนเต็ม ให้ตั้งค่า precision เป็น 1

การสร้างโปรแกรมตรวจสอบหมายเลข

ค่าของช่องตัวเลขคือตัวเลข ดังนั้นโปรแกรมตรวจสอบจะต้องยอมรับ number และ แสดงผล number, null หรือ undefined

นี่คือตัวอย่างของโปรแกรมตรวจสอบที่เปลี่ยนค่าให้เป็น 0 หรือ 1 ทั้งนี้ขึ้นอยู่กับว่าค่าเป็นเลขคี่หรือเลขคู่

function(newValue) {
  return newValue % 2;
}