Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
四个问题-计算器应用程序-Android Java_Java_Android_Math_Variables - Fatal编程技术网

四个问题-计算器应用程序-Android Java

四个问题-计算器应用程序-Android Java,java,android,math,variables,Java,Android,Math,Variables,大家好,我是一个开发android应用程序的新手,我一直在读《Sams 24小时自学Java》,这是一本很棒的书。但我一直停留在只获取十进制数的值,然后使用java数学计算最终值的位置 有没有办法让editText直接输入到浮点或双精度变量,而不是字符串,然后再从字符串输入到双精度变量 字符串与double或float之间的转换是否存在任何实际问题,或者值是否保持不变且不会受到污染 与浮子相比,使用doble的区别/优点和缺点 从用户处输入分数值的最佳方法 谢谢你的帮助。祝你今天愉快 不,你不能

大家好,我是一个开发android应用程序的新手,我一直在读《Sams 24小时自学Java》,这是一本很棒的书。但我一直停留在只获取十进制数的值,然后使用java数学计算最终值的位置

  • 有没有办法让editText直接输入到浮点或双精度变量,而不是字符串,然后再从字符串输入到双精度变量
  • 字符串与double或float之间的转换是否存在任何实际问题,或者值是否保持不变且不会受到污染
  • 与浮子相比,使用doble的区别/优点和缺点
  • 从用户处输入分数值的最佳方法
  • 谢谢你的帮助。祝你今天愉快

  • 不,你不能
  • 对。例如,如果字符串是一个ID,读起来像“0029482”,那么在将其转换为整数后,它将读为“29482”,并且可能是无效的。字符串可以比double或float长,如果字符串中有类似“0.1234567890012345678901234567890123456789”的值,则将其转换为double会损失很多精度
  • double使用双倍的位数(因此得名),因此可以保持更高的精度
  • 接受分母和分子整数,并将它们存储在自定义类中
  • 不,你不能
  • 对。例如,如果字符串是一个ID,读起来像“0029482”,那么在将其转换为整数后,它将读为“29482”,并且可能是无效的。字符串可以比double或float长,如果字符串中有类似“0.1234567890012345678901234567890123456789”的值,则将其转换为double会损失很多精度
  • double使用双倍的位数(因此得名),因此可以保持更高的精度
  • 接受分母和分子整数,并将它们存储在自定义类中
  • 不,您可以编写自己的子类,使其看起来像是正在发生的事情,但在链中的某个位置,您必须执行从字符/文本数据到数字数据的转换

  • 对。基本浮点类型用于将十进制数编码为二进制。编码提供了很好的精度,但不精确/不能准确表示许多可能的数字。因此,如果您将字符串解析为基本浮点类型,然后再次解析回字符串,则可能会得到与输入字符串不同的内容

  • double使用两倍于float的位对数字进行编码,因此能够保持更高的精度。但是,它不会消除第2部分中讨论的问题。如果您想删除这些问题,请考虑使用诸如<代码> BigDecimal >代码>来表示您的数字,而不是原始类型,如<代码>浮点< /代码>或<代码>双< /代码>。< /p>
  • 将整个内容作为字符串读取,
    split()
    将其放在“/”字符上,然后将每个部分存储为整数(或
    biginger
    )。如果需要将其显示为十进制,请使用
    BigDecimal
    执行除法

  • 不,您可以编写自己的子类,使其看起来像是正在发生的事情,但在链中的某个位置,您必须执行从字符/文本数据到数字数据的转换

  • 对。基本浮点类型用于将十进制数编码为二进制。编码提供了很好的精度,但不精确/不能准确表示许多可能的数字。因此,如果您将字符串解析为基本浮点类型,然后再次解析回字符串,则可能会得到与输入字符串不同的内容

  • double使用两倍于float的位对数字进行编码,因此能够保持更高的精度。但是,它不会消除第2部分中讨论的问题。如果您想删除这些问题,请考虑使用诸如<代码> BigDecimal >代码>来表示您的数字,而不是原始类型,如<代码>浮点< /代码>或<代码>双< /代码>。< /p>
  • 将整个内容作为字符串读取,
    split()
    将其放在“/”字符上,然后将每个部分存储为整数(或
    biginger
    )。如果需要将其显示为十进制,请使用
    BigDecimal
    执行除法


  • 我想补充一点,如果您正在寻找一种替代
    double
    float
    的方法,这种方法在字符串和数字形式之间转换时不会导致精度损失,请查看以下内容:

    • 标准类表示任意精度的缩放数字;i、 e.任意精度整数乘以(缩放)10的固定整数幂

    • Apache包包含基于十进制的浮点数的实现


    但是,现在我要避开这两个主题,使用
    float
    double
    实现。(我认为你的真正目标是学习如何编写Java,而不是构建世界上最伟大的计算器应用。)

    我想补充一点,如果你正在寻找一种替代
    double
    float
    的方法,在字符串和数字形式之间转换时不会导致精度损失,请看以下几点:

    • 标准类表示任意精度的缩放数字;i、 e.任意精度整数乘以(缩放)10的固定整数幂

    • Apache包包含基于十进制的浮点数的实现

    但是,现在我要避开这两个主题,使用
    float
    double
    实现。(我认为你的真正目标是学习如何编写Java,而不是构建世界上最伟大的计算器应用程序。)