为什么double.TryParse()在精度>时返回true。 16

时间:2017-02-27 09:25:34

标签: c# .net-4.0 double tryparse

使用小测试我使用以下代码:

value

结果是

  

已转换' 123456789.123456789'至123456789.123457。

这是因为false太长而无法放入双倍。只有16位数字。但是,由于信息丢失,TryParse()不应该返回//drag and drope for imageview01 @FXML private void handleDragDetected1(MouseEvent event) { Dragboard db = imageview01.startDragAndDrop(TransferMode.ANY); ClipboardContent cb = new ClipboardContent(); cb.putImage(imageview01.getImage()); cb.putString(imageview01_label.getText()); db.setContent(cb); System.out.println("Picture 1 is draged"); } ... ... //drag and drope for imageview100 @FXML private void handleDragDetected100(MouseEvent event) { ... ... } 吗?

2 个答案:

答案 0 :(得分:2)

Msdn documentation已经强调了这一事实

  

但是,由于精度损失,值可能不等

它并不构成转换失败,而是

  

如果 s参数为nullString.Empty,则格式不符合格式   符合样式,表示小于MinValue或   大于MaxValue,或者样式不是有效组合   NumberStyles枚举常量。

答案 1 :(得分:1)

TryParse返回bool值。是否可以将值解析为double。

它不会返回确切的值,只是它是否可以被解析为bool。