เพื่อที่จะทำงานกับประเภทข้อมูลทศนิยมฉันต้องทำมันด้วยการเริ่มต้นตัวแปร:
decimal aValue = 50.0M;
ส่วน M หมายถึงอะไร
เพื่อที่จะทำงานกับประเภทข้อมูลทศนิยมฉันต้องทำมันด้วยการเริ่มต้นตัวแปร:
decimal aValue = 50.0M;
ส่วน M หมายถึงอะไร
คำตอบ:
มันหมายความว่ามันเป็นตัวอักษรทศนิยมตามที่คนอื่นพูด อย่างไรก็ตามต้นกำเนิดอาจไม่ใช่คำแนะนำที่อื่นในคำตอบนี้ จากC # Annotated Standard (รุ่น ECMA ไม่ใช่รุ่น MS):
decimal
ต่อท้ายเป็น m / m ตั้งแต่ D / ddouble
ถูกนำตัวแล้วโดย แม้ว่าจะได้รับการแนะนำว่า M ย่อมาจากเงินปีเตอร์ Goldedecimal
จำได้ว่าเอ็มได้รับเลือกให้เป็นเพียงตัวอักษรที่ดีที่สุดต่อไปใน
คำอธิบายประกอบที่คล้ายกันกล่าวถึงเวอร์ชันแรก ๆ ของ C # ที่มี "Y" และ "S" สำหรับbyte
และshort
ตัวอักษรตามลำดับ พวกเขาถูกทิ้งเพราะไม่มีประโยชน์บ่อยครั้งนัก
จากข้อกำหนด C #:
var f = 0f; // float
var d = 0d; // double
var m = 0m; // decimal (money)
var u = 0u; // unsigned int
var l = 0l; // long
var ul = 0ul; // unsigned long
โปรดทราบว่าคุณสามารถใช้สัญลักษณ์ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก
M หมายถึงอักขระที่ไม่ชัดเจนตัวแรกใน "ทศนิยม" หากคุณไม่เพิ่มหมายเลขจะถือว่าเป็นสองเท่า
D คือสองครั้ง
0.42
เป็นทศนิยมสามารถให้ค่าที่แตกต่างกับคุณ0.42M
(และเหมือนกันสำหรับการใช้ตัวอักษรสองตัวแทนการลอยตามตัวอักษร - float val = 423.3
ยังล้มเหลว) ดังนั้นคุณเลือกระหว่างพฤติกรรมที่ผิดพลาดอย่างละเอียดและข้อผิดพลาดของคอมไพเลอร์ที่ใช้เวลาครึ่งวินาทีในการแก้ไขและสอดคล้องกับมาตรฐาน CLR และ C #
ตัวอักษรต่อท้ายจริงโดย M หรือ m เป็นทศนิยมประเภท ตัวอย่างเช่นตัวอักษร 1m, 1.5m, 1e10m และ 123.456M เป็นทศนิยมชนิดทั้งหมด ตัวอักษรนี้ถูกแปลงเป็นค่าทศนิยมโดยการรับค่าที่แน่นอนและหากจำเป็นให้ปัดเศษเป็นค่าที่สามารถแทนได้ที่ใกล้ที่สุดโดยใช้การปัดเศษของนายธนาคาร สเกลใด ๆ ที่ปรากฏในตัวอักษรจะได้รับการเก็บรักษาไว้ยกเว้นค่าจะถูกปัดเศษหรือค่าเป็นศูนย์ (ซึ่งในกรณีหลังเครื่องหมายและสเกลจะเป็น 0) ดังนั้นตัวอักษร 2.900m จะถูกแยกวิเคราะห์เป็นทศนิยมด้วยเครื่องหมาย 0 สัมประสิทธิ์ 2900 และสเกล 3
ฉันว่า M เป็นตัวแทนของ mantissa ทศนิยมสามารถใช้เพื่อประหยัดเงินได้ แต่ไม่ได้หมายความว่าทศนิยมจะใช้เพื่อเงินเท่านั้น