मुझे एहसास है कि यह एक हानिकारक बग है लेकिन मैं अभी भी समझना चाहता हूं कि क्या हो रहा है।क्रोम (.1) .toString (3) के लिए डॉट के बाद 1099 अंकों का उत्पादन क्यों करता है?
मैं कैनवास पर Peano curve प्रस्तुत करने के लिए कुछ कोड के साथ खेल रहा था जिसमें बेस 3 में तार्किक निर्देशांक व्यक्त करना शामिल था जब मैंने देखा कि एक फ़ंक्शन क्रोम में बेहद लंबे तारों को वापस कर रहा था। और अधिक बारीकी से देख रहे हैं, यह पता चला है कि अभिव्यक्ति
(.1).toString(3)
0,002200220022002200220022002200220100002100210000110101000202201120201212110212202011212000102021022210120112001022101010120202020022102010100200210110010000202221001022002202102122102110002012010220202020011000222022001200102102202000112022010100102211212012122021012212120012120012221210011021010220200001202121120022222110111121112201212111120221121001002221210000221022021012220020112022001121012011001112000001101100101011002201210200110202021021120211100100210120010202222111221201201100002211002202000110011221210 लिए क्रोम में मूल्यांकन करता है 2102100111000222211012211220200112120002100121210000222002201120220111022021120022101112201220001101012112201211010010110122011201120022210102021100002000121020120001112122222220201200220012211122001022022001222011221100212001100010200001211022021120210222110022221202002120011210220012001022112012202110101212100011220000220200122222102201100202101012110201221202211220201111021112112201120101121122212112220211110002020120201022022121210120002202021212000101222221101122201001100021211101012101011202020110010112202201201001020212002021112020021121202000000222122210022012001201
यहाँ देखा के रूप में: http://jsfiddle.net/zvp8osm8/
मैं क्या बता सकते हैं के लिए, केवल पहले 33 डॉट के बाद अंक में मतलब इस मामले में, शेष पहचानने योग्य पैटर्न के बिना यादृच्छिक कचरा जैसा दिखता है। विभिन्न बेस और एक्सपोनेंट्स के लिए (10000000000.1).toString(3)
या (.7).toString(7)
जैसे डॉट के बाद 1099 (!) अंक के साथ इसी तरह के परिणाम उत्पन्न होते हैं। (.5).toString(3)
जैसे अन्य मान भी तारों का उत्पादन करते हैं, लेकिन सभी अंक समझ में आते हैं।
ओपेरा के अपवाद के साथ अन्य ब्राउज़र केवल हर मामले में अंकों की उचित संख्या उत्पन्न करते हैं, जो मुझे लगता है कि समस्या क्रोम के जावास्क्रिप्ट इंजन में है।
मैं अब दो प्रश्न हैं:
- क्यों आधार 3 में दशमलव संख्या का प्रतिनिधित्व क्रोम में इतने सारे तुच्छ अंक होने करता है?
- यादृच्छिक अंक संभवतः कहां से आ सकते हैं?
आधार 5, 7, 9, आदि भी एक ही परिणाम उत्पन्न करते हैं। शायद इसके पीछे तर्क अजीब आधार मूल्य है। – VisioN
कोई आपको बेहतर तरीके से भर देगा, लेकिन मैं अनुमान लगा रहा हूं कि ऐसा इसलिए है क्योंकि बाइनरी में 0.1 का प्रतिनिधित्व करने का कोई सटीक तरीका नहीं है। (फ़्लोटिंग पॉइंट त्रुटियों को देखें) – Mardoxx