(ชมคลิป) ❗️ Hyundai ทางเลือกใหม่ที่จะเพิ่มขึ้นในเมืองไทยและอาเซียน http://cardebuts.com/2020/05/hyundai-motor-asia-pacific-to-finish-production-base-begazi-west-java-indonesia-by-end-of-2020/
同時也有4部Youtube影片,追蹤數超過5,050的網紅Yokohama Base TV,也在其Youtube影片中提到,#Windows #バッチ #プログラミング #システムエンジニア #IT #SE ■チャンネル名:横浜ベース(Yokohama Base) ■登録お願いします(^^)/ http://www.youtube.com/channel/UCCnPPxUmPSJQIAetH8lcUCA?sub_con...
java base 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
หนึ่งในปัญหาคลาสิก เวลาเขียนโปรแกรมที่ทุกคนต้องเจอเลย
ก็คือการบวกลบเลขทศนิยมในภาษาโปรแกรม ของบางภาษา นี้แหละ
เช่น JavaScript, Python, Perl, C#, C, C++, Java, PHP, Fortran
(และอื่นๆ อีกหลายภาษาที่ไม่ได้กล่าวถึง)
.
หลายครั้งที่มันอาจเพี้ยนได้ เช่น
👉 0.1+0.2 ไม่ได้เท่ากับ 0.3
แต่ได้เป็น 0.30000000000000004
.
👉 หรือ 0.1 บวกกัน 10 ครั้ง ก็ไม่ได้เป็น 1
แต่ได้เป็น 0.9999999999999999
.
คนเขียนโปรแกรมเจอแบบนี้เข้าไป
ก็เหมือนมวยโดนหมัดน๊อคมึนงงในดงโค้ด
:
:
แต่ใช่ว่ามันจะเพี้ยนทุกครั้ง ซะเมื่อไร เช่น
0.5+0.5 = 1 (ถูกต้องเป๊ะ)
0.2+0.3 = 0.5 (บังเอิญไม่เพี้ยน)
.
สำหรับ กรณี 0.2 กับ 0.3 มันถูกตัดเศษเหลือเป็น
0.2000000000000000111022302462515654042363166809082031250
กับ
0.2999999999999999888977697537484345957636833190917968750
พอบวกกันจึงได้ 0.5 พอดี แบบฟลุ๊คๆๆ ซึ่งไม่ควรทำได้
(ตรงสอบดูได้ 0.2+0.3 == 0.5 ได้ค่าออกมาเป็น true)
:
:
สาเหตุที่เป็นเช่นนี้
ก็เพราะว่าคอมพิวเตอร์มันรู้จักแต่ เลขฐาน2 อะนะ
ต่อให้เราเขียนโค้ดใช้เลขฐาน10 ก็ตาม
สุดท้ายเวลาโค้ดมันถูกรัน ก็จะกลายเป็นเลขฐาน 2 อยู่ดี
.
😨 แล้วก็เป็นความซวยที่จะมาเยือนคนเขียนโปรแกรม
เพราะเวลาแปลงเลขฐาน10 ไปเป็นเลขฐาน 2
บางกรณีมันแปลงแล้ว ดันได้ตัวเลขที่ไม่รู้จบเสียด้วยซิ
จึงทำให้การเก็บทศนิยมผิดเพี้ยนไปได้
.
สำหรับรูปแบบการจัดเก็บเลขทศนิยม ในหลายภาษา
เขาจะนิยมใช้มาตรฐาน IEEE-754 floating point
เช่น 0.1 จะถูกมองว่าคือ 1/10
.
เมื่อเก็บเป็นเลขทศนิยมฐานสอง
ตามมาตรฐาน IEEE-754 floating point จะได้เป็น
0.0001100110011001100110011001100110011001100110011...
เป็นทศนิยมไม่รู้จบในรูปเลขฐานสอง ....นี้คือสิ่งที่คอมมองเห็น
.
พอคอมแปลงกลับมาเป็นทศนิยม เพื่อให้มนุษย์โลกอ่านเข้าใจ
ในรูปฐาน 10 ก็จะได้เป็น
0.1000000000000000055511151231257827021181583404541015625
ทว่าคอมมันจะตัดให้เหลือแค่ 0.1 (คนจึงเห็นแค่นี้)
:
🤔 ซึ่งความเพื้ยนแบบนี้
แน่นอนทำให้เกิดบั๊กเวลาคำนวณตัวเลข
- ยิ่งงานต้องการคำตอบที่ละเอียดมาก เช่น งานธนาคาร ก็จะประสบปัญหา เป็นต้น
- หรือเวลานำไปใช้ในเงื่อนไขเปรียบเทียบพวก if, while ฯลฯ ก็อาจมีบั๊กเกิดขึ้นได้ เป็นต้น
.
😀 แต่ไม่ต้องห่วง ในหลายๆ ภาษาเขาจะมีวิธีแก้ปัญหานี้อยู่ครับ
ป้องกันการคำนวณตัวเลข ไม่ให้คลาดเคลื่อน เช่น
- ใน Java ก็จะมีคลาส BigDecimal เอาไว้บวกลบคูณหาร สำหรับเลขทศนิยมโดยเฉพาะ
- ใน Python ก็จะมีคลาสคล้ายๆ กัน เช่น Decimal
- ส่วนใน JavaScript อาจใช้ไลบรารี่ ซึ่งมีให้เลือกเยอะเช่น
https://github.com/MikeMcl/decimal.js/
https://github.com/MikeMcl/bignumber.js/
https://github.com/MikeMcl/big.js/
- ภาษาอื่นที่เหลือลองไปศึกษาเองดูนะครับ
.
.
เรื่องบวกลบคูณหาร เลขทศนิยม ถือเป็นเรื่องสำคัญที่ไม่ควรมองข้าม
โดยส่วนตัวก็เคยเจอความเผลอเรอตรงนี้
ในระดับโปรเจคระดับธนาคาร ก็เคยพลาดมาแล้ว
สุดท้ายต้องมาไล่นั่งแก้โค้ดหลายบรรทัด
เสียเวลานั่งไล่ test ใหม่อีกรอบอีก
.
หมายเหตุเห็นคอมเมนต์สงสัยว่า
PHP กับ C# รอดชะตากรรมเดียวกันไหม ?
ก็บอกว่าไม่รอดครับ
.
// ลองดูตัวอย่างโค้ด C#
Console.WriteLine( ((0.1+0.2) == 0.3)); // False
Console.WriteLine( ((0.1+0.2) == 0.30000000000000004)); // True
// ลองดูตัวอย่างโค้ด PHP
echo number_format(0.1+0.2 , 17);
.
++++++
เขียนโดย โปรแกรมเมอร์ไทย thai programmer
อ่านเรื่อง IEEE-754 floating point ได้ที่
https://th.wikipedia.org/wiki/จำนวนจุดลอยตัว
One of the programming time class issues that everyone needs to encounter.
It's a positive, negative, decimal number in the programming language of some languages.
เช่น JavaScript, Python, Perl, C#, C, C++, Java, PHP, Fortran
(And many other languages not mentioned)
.
So many times it can be crazy like
👉 0.1 + 0.2 is not equal to 0.3
But got to be 0.30000000000000004
.
👉 or 0.1 plus 10 times. It's not 1
But got to be 0.9999999999999999
.
The programmers found this.
It's like boxing. I got a punch. I'm confused in the code.
:
:
But it's not crazy every time.
0.5 0.5 0.5 0.5 1 (Exactly correct)
0.2 0.2 0.3 0.3 0.5 (accidentally not crazy)
.
For 0.2 and 0.3 cases, it was cut as debris.
0.2000000000000000111022302462515654042363166809082031250
With
0.2999999999999999888977697537484345957636833190917968750
Let's be positive. I got 0.5 fits. Fluke which I shouldn't do.
(I can see the exam. 0.2 + 0.3 == 0.5 I got the value to be true)
:
:
The cause is like this
It's because computer only knows the base number 2
Even if we write code, use base number 10
Finally, when the code is run, it will become the base number 2 anyway.
.
😨 and it's bad luck to visit the programmers.
Because time converts base number 10 to base number 2
In some cases, it's converted. I get an endless number.
So that the decimal collection is wrong.
.
For decimal numbers storage in multiple languages
He will be popular with IEEE-754 floating point standards.
For example, 0.1 will be seen as 1/10
.
When it's kept as a decimal number, binary digits.
According to IEEE standards-754 floating point will be.
0.0001100110011001100110011001100110011001100110011...
It's an endless decimal in the second base number.... This is what the computer sees.
.
When the computer comes back to a decimal, so that the world can read and understand.
In the base photo, 10 will be.
0.1000000000000000055511151231257827021181583404541015625
But the computer will cut it down to 0.1 (that's all I see)
:
🤔 This kind of friendship
Definitely make a time bug. Calculates numbers.
- The more jobs require a detailed answer, such as banking job, the problem is etc.
- or time to apply in comparison terms. If, while etc, there may be a buck happening. etc.
.
😀 But don't worry. In many languages, there will be a solution to this problem.
Prevent calculation of numbers from discrepancy, e.g.
- In Java, there will be a BigDecimal class. Plus, multiply, multiply for decimal numbers.
- In Python there are similar classes like Decimal
- Parts in JavaScript may use a lot of library to choose from, e.g.
https://github.com/MikeMcl/decimal.js/
https://github.com/MikeMcl/bignumber.js/
https://github.com/MikeMcl/big.js/
- Other languages. Let's study it yourself.
.
.
A positive, multiply, digging, decimal numbers are important things that shouldn't be overlooked.
Personally, I have experienced the accident.
Bank level project. I have already missed it.
Finally, I have to sit and solve many lines of code.
Waste of time. Sit to chase the new test again.
.
Note, see comments, wonder if
PHP and C #survive the same fate?
I told you that you won't survive.
.
// Check out the C code trailer #
Console.WriteLine( ((0.1+0.2) == 0.3)); // False
Console.WriteLine( ((0.1+0.2) == 0.30000000000000004)); // True
// Check out the PHP code trailer
echo number_format(0.1+0.2 , 17);
.
++++++
Written by Thai programmer thai coder
Read IEEE-754 floating point at
https://th.wikipedia.org/wiki/จำนวนจุดลอยตัวTranslated
java base 在 乐飞翎 luvfeelin Facebook 的最佳貼文
🇮🇩 夜里听着帐篷噼啪作响迷迷糊糊地辗转反侧,即使穿着保暖衣物也没睡得安稳。随着伙伴起来的声音,我也顶着发冷的身子坐了起来,看看不离身的手表上刻画着 12 点 30 分。我想在这缺水缺暖的时刻就别想着刷牙洗脸了,稍微拍拍脸准备好后就吃宵夜去~😌
这次我穿上了新的红色登山靴 🥾 LOWA Renegrade GTX,高筒的设计可以防止沙石进入鞋内以及很好地保护脚板,同时也带上了新入手的 BioLite Headlamp 330 充电式头灯,超轻超亮的高品质头灯也同时省却了预备电池的麻烦。攻顶最好可以带上两支登山杖,毕竟攻上火山顶前的那一段火山沙石路很不好走啊~😖
靴子头灯哪里买?👉 Montanic Adventure Store
------------------------------------------------------------------
Mount Semeru 东爪哇之巅 ᄿ 赛梅鲁火山【攻顶之路】Summit Attack > Kalimati Base Camp > Ranu Kumbolo > Ranu Pani
▶️ http://bit.ly/MountSemeruSummitAttack
Surabaya 泗水:East Java 东爪哇火山瀑布之旅【行程篇】
▶️ http://bit.ly/EastJava2019
#joanxhiking #summitattack #mountsemeru #puncakmahameru #indonesia #born4adventure #montanic #outdoorstravelblogger #luvfeelin www.luvfeelin.com
java base 在 Yokohama Base TV Youtube 的最讚貼文
#Windows #バッチ #プログラミング #システムエンジニア #IT #SE
■チャンネル名:横浜ベース(Yokohama Base)
■登録お願いします(^^)/
http://www.youtube.com/channel/UCCnPPxUmPSJQIAetH8lcUCA?sub_confirmation=1
■Lesson 2-2
バッチ プログラム の使い方をマスターしろ! [構文と変数編]
■内容:
これからシステムエンジニア(SE)・ プログラマーを仕事にしたい方。
どうやって勉強したらいいか、IT業界に転職するにはどのような勉強・資格を取ればいいのかなど実戦形式で説明いたします。
Microsoft MCSE(2000トラック)・LPIC Level3 ・CCNA・ドットコムダブルスターの資格認定を受けているITスクール講師が教えるスペシャルレッスンです。もちろん無料!
20年以上の経験を持ち現在も第一線で活動しています!
(現場で出会っているかた大勢いると思います(笑))
ITシステムエンジニア(SE)になるための勉強講座です!!
実戦から逆算して必要な知識を体系化しご教授させて頂ければと思います。
頑張って習得してください!!!
#2-1【システムエンジニア プログラマー SE 】【仕事 勉強 転職 資格 】 バッチ プログラム の使い方をマスターしろ! [基本知識・操作編]
https://youtu.be/g9ja6UYd8Kk
■IT系の資格
Microsoft系:MCP(開発系・基盤系)
Linux系:LPI
OSS系:LPI
IPA:情報処理系
Network系:CCNA
データベース系:oracleマスター
プログラム系:oracle(java)
■twitter:@Hiro_K_jp_
https://twitter.com/Hiro_K_jp_
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
少しでも役になった場合はフォローお願いします(笑)
■関連動画
【Windows10 高速化 重い 遅い 改善術】 原因と対策 をマイクロソフト認定エンジニアが教えます!
https://youtu.be/TXX0V2uQWJ0
職業紹介【システムエンジニア篇】~将来の仕事選びに役立つ動画
https://youtu.be/9J3Lb_epJnY
ひろゆきの職業エンジニア最強論がどう考えても論破できない!強すぎ!!!
https://youtu.be/JCnPtmj3MpA
堀江貴文のQ&A「プログラマーは稼げる!?」〜vol.621〜
https://youtu.be/XFlQ2KtVHO4
中高生に人気の職業1位 プログラマーあるある【体験談】
https://youtu.be/k79XZk0eLhQ

java base 在 Yokohama Base TV Youtube 的最佳貼文
#Windows #バッチ #プログラミング #システムエンジニア #IT #SE
■チャンネル名:横浜ベース(Yokohama Base)
■登録お願いします(^^)/
http://www.youtube.com/channel/UCCnPPxUmPSJQIAetH8lcUCA?sub_confirmation=1
■Lesson 2-1
バッチ プログラム の使い方をマスターしろ! [基本知識・操作編]
■内容:
これからシステムエンジニア(SE)・ プログラマーを仕事にしたい方。
どうやって勉強したらいいか、IT業界に転職するにはどのような勉強・資格を取ればいいのかなど実戦形式で説明いたします。
Microsoft MCSE(2000トラック)・LPIC Level3 ・CCNA・ドットコムダブルスターの資格認定を受けているITスクール講師が教えるスペシャルレッスンです。もちろん無料!
20年以上の経験を持ち現在も第一線で活動しています!
(現場で出会っているかた大勢いると思います(笑))
ITシステムエンジニア(SE)になるための勉強講座です!!
実戦から逆算して必要な知識を体系化しご教授させて頂ければと思います。
頑張って習得してください!!!
#1【システムエンジニア プログラマー SE 】【仕事 勉強 転職 資格 】 バッチ プログラム の使い方をマスターしろ! [タスクスケジューラ編]
https://youtu.be/2y5RmYhJOlc
#2-2【システムエンジニア プログラマー SE 】【仕事 勉強 転職 資格 】 バッチ プログラム の使い方をマスターしろ! [構文と変数編]
https://youtu.be/OlC-2wCkTQc
■IT系の資格
Microsoft系:MCP(開発系・基盤系)
Linux系:LPI
OSS系:LPI
IPA:情報処理系
Network系:CCNA
データベース系:oracleマスター
プログラム系:oracle(java)
■twitter:@Hiro_K_jp_
https://twitter.com/Hiro_K_jp_
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
少しでも役になった場合はフォローお願いします(笑)
■関連動画
【Windows10 高速化 重い 遅い 改善術】 原因と対策 をマイクロソフト認定エンジニアが教えます!
https://youtu.be/TXX0V2uQWJ0
職業紹介【システムエンジニア篇】~将来の仕事選びに役立つ動画
https://youtu.be/9J3Lb_epJnY
ひろゆきの職業エンジニア最強論がどう考えても論破できない!強すぎ!!!
https://youtu.be/JCnPtmj3MpA
堀江貴文のQ&A「プログラマーは稼げる!?」〜vol.621〜
https://youtu.be/XFlQ2KtVHO4
中高生に人気の職業1位 プログラマーあるある【体験談】
https://youtu.be/k79XZk0eLhQ

java base 在 Yokohama Base TV Youtube 的最佳解答
#Windows #バッチ #プログラミング #システムエンジニア #IT #SE
■チャンネル名:横浜ベース(Yokohama Base)
■登録お願いします(^^)/
http://www.youtube.com/channel/UCCnPPxUmPSJQIAetH8lcUCA?sub_confirmation=1
■Lesson 01
バッチの使い方をマスターしろ! タスクスケジューラ編
■内容:
これからシステムエンジニア(SE)・ プログラマーを仕事にしたい方。
どうやって勉強したらいいか、IT業界に転職するにはどのような勉強・資格を取ればいいのかなど実戦形式で説明いたします。
Microsoft MCSE(2000トラック)・LPIC Level3 ・CCNA・ドットコムダブルスターの資格認定を受けているITスクール講師が教えるスペシャルレッスンです。もちろん無料!
20年以上の経験を持ち現在も第一線で活動しています!
(現場で出会っているかた大勢いると思います(笑))
ITシステムエンジニア(SE)になるための勉強講座です!!
実戦から逆算して必要な知識を体系化しご教授させて頂ければと思います。
頑張って習得してください!!!
Next Lesson
#2-1【システムエンジニア プログラマー SE 】【仕事 勉強 転職 資格 】 バッチ プログラム の使い方をマスターしろ! [基本知識・操作編]
https://youtu.be/g9ja6UYd8Kk
■IT系の資格
Microsoft系:MCP(開発系・基盤系)
Linux系:LPI
OSS系:LPI
IPA:情報処理系
Network系:CCNA
データベース系:oracleマスター
プログラム系:oracle(java)
■twitter:@Hiro_K_jp_
https://twitter.com/Hiro_K_jp_
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
少しでも役になった場合はフォローお願いします(笑)
■関連動画
【Windows10 高速化 重い 遅い 改善術】 原因と対策 をマイクロソフト認定エンジニアが教えます!
https://youtu.be/TXX0V2uQWJ0
職業紹介【システムエンジニア篇】~将来の仕事選びに役立つ動画
https://youtu.be/9J3Lb_epJnY
ひろゆきの職業エンジニア最強論がどう考えても論破できない!強すぎ!!!
https://youtu.be/JCnPtmj3MpA
堀江貴文のQ&A「プログラマーは稼げる!?」〜vol.621〜
https://youtu.be/XFlQ2KtVHO4
中高生に人気の職業1位 プログラマーあるある【体験談】
https://youtu.be/k79XZk0eLhQ
