最简单的方法可能是使用反复试验.

public static String toFraction(double d, int factor) {

StringBuilder sb = new StringBuilder();

if (d < 0) {

sb.append('-');

d = -d;

}

long l = (long) d;

if (l != 0) sb.append(l);

d -= l;

double error = Math.abs(d);

int bestDenominator = 1;

for(int i=2;i<=factor;i++) {

double error2 = Math.abs(d - (double) Math.round(d * i) / i);

if (error2 < error) {

error = error2;

bestDenominator = i;

}

}

if (bestDenominator > 1)

sb.append(' ').append(Math.round(d * bestDenominator)).append('/') .append(bestDenominator);

return sb.toString();

}

public static void main(String... args) {

System.out.println(toFraction(1.3333, 1000));

System.out.println(toFraction(1.1428, 1000));

for(int i=1;i<100000000;i*=10) {

System.out.println("PI "+i+": "+toFraction(3.1415926535897932385, i));

}

}

版画

1 1/3

1 1/7

PI 1: 3

PI 10: 3 1/7

PI 100: 3 14/99

PI 1000: 3 16/113

PI 10000: 3 16/113

PI 100000: 3 14093/99532

PI 1000000: 3 140914/995207

PI 10000000: 3 244252/1725033

java字符如何向float转换_java – 将float转换为字符串分数表示相关推荐

  1. java字符流和字节流转换_java中字符流和字节流的转换

    看到InputStreamReader和OutputStreamWriter的一些说法, 说InputStreamReader是将字节流转换成字符流,而OutputStreamWriter则相反,是将 ...

  2. java中字符和字节的转换_Java最佳实践–字符到字节和字节到字符的转换

    java中字符和字节的转换 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 特别是,我们将着重于使用默认编码时如何有效地处理字符到字节和字节到字符 ...

  3. java float转换_Java float转换为String

    Java将float转换为String 我们可以使用String.valueOf()和Float.toString()方法在Java中将float转换为String. 情境 如果必须在文本字段中显示浮 ...

  4. java 字符流与字节流区别_JAVA 字符流与字节流的区别

    Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...

  5. c语言如何float转换到uint,float转为int sql中float怎样转成int

    C语言中float型转换成int型是什么规则 float型前24位是小数部分,后8位是指数部分.整型是16位,那是怎么转换C语言整型使用原码.反码.补码进行编码,而浮点型使用IEEE754进行编码,所 ...

  6. JavaScript 技术篇-js自动转换类型,自动转换为字符串,js避免自动转换的坑

    自动转换类型 当 JavaScript 尝试操作一个 "错误" 的数据类型时,会自动转换为 "正确" 的数据类型. 而往往这种隐式的转化可能给程序带来很多莫名奇 ...

  7. java 16进制字符转10进制_java 16进制字符串怎么转换成10进制字符串

    展开全部 toHexString public static String toHexString(int i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式. 如果参数为负,那么无符号整 ...

  8. java语言编写进制转换_Java 3种方法实现进制转换

    由其他进制转换为十进制比较简单,下面着重谈一谈十进制如何化为其他进制. 1.使用Java带有的方法Integer,最简单粗暴了,代码如下 //使用java提供的方法 //但仅局限于比较常用的二进制.八 ...

  9. java float是_java中float是什么意思

    Java中float的意思"浮动",代表的是一种浮点数数据类型,它内存分配4个字节,占32位,范围从"10^-38"到"10^38"和&qu ...

最新文章

  1. linux 明文创建密码,linux下抓取内存中明文密码mimipenguin
  2. 大型神经网络可能初具意识:OpenAI首席科学家引争议,众大佬吵成一团
  3. 【Python基础】Python基础语法14个知识点大串讲
  4. 微信小程序 获取用户信息并保存登录状态
  5. 无法在计算机上创建文件夹iscsi,ISCSI连接后磁盘无法读写问题求解决
  6. Linux内核之XArray
  7. python float 精度_改变Float的精度并在Python中存储
  8. python函数参数传递切片_将DataFrame切片作为参数传递给函数而不使用“SettingWithCopyWarning”...
  9. Error:Execution failed for task ‘:app:preDebugAndroidTestBuild’. Conflict with dependency ‘com.andr
  10. 详解 ManualResetEvent(转)
  11. Tessellation细分曲面技术(DX11)
  12. 第二章 JavaWeb HTML与CSS网页设计 建立第一个网页
  13. macOS Catalina 以上版本使用不了 PPTP协议的(shimo 无法正常使用)
  14. UI设计师的段位和匹配能力
  15. linux-计算机基础
  16. 怎么把视频中的人声和背景伴奏分离?
  17. 成长,进一寸有一寸的欢喜
  18. 网络三维虚拟展馆开发优势
  19. OTA升级功能系列三(MD5加密)
  20. modbus-rtu和modbus-tcp和modbus-rtu-Over-tcp/ip

热门文章

  1. 存档位置_胶带输送机综合保护装置安装位置 技术标准(试行)
  2. 大数据如何应用在食品追溯管理
  3. simpledateformat_为什么阿里巴巴规定代码中禁用 static 修饰 SimpleDateFormat?
  4. 2021年北京理工大学ACM CLUB清明节组队训练赛
  5. html标签默认值,HTML标签CSS属性默认值汇总
  6. React组件: 提取图片颜色
  7. UITextField监控文字变化方法
  8. oracle数据库的重复数据处理
  9. C++的MFC 与 HTML 双向通讯
  10. Swap in C C++ C# Java