php string 转double,字符串数字转换成对应的Double数值

一,介绍

前面实现了字符串转换成整形数值。参考这里:

它不支持小数,不支持符号(正、负号)

现在实现一个更复杂一点字符串转换成数值的程序。

它支持“浮点字符串”转换成对应的浮点数值,如: "123.45" --> 123.45

支持字符串前面或者后面有空格的情况,如:"  123.45   " --> 123.45

支持带符号的情况,如:"-123.45" -->  -123.45

借助它,也可以实现字符串转换成整形数值。

二,思路

需要考虑的细节:

①字符串前面和后面是否有空格?

②是否有小数点?

总体思路与这篇文章 参考这里:  一样

但是,它在遇到小数点后,继续求值,但返回结果时会移N位(除10*N)。

输入:由代表数值的字符串,如 "123.45"

输出:该字符串表示的数值,如 123.45

不允许这种格式的输入:"12   3.45"

三,代码如下:

private static double atof(String operand){

double val, power;

int sign,index = 0;

operand = operand.trim();

char first = operand.charAt(0);

sign = (first == '-') ? -1 : 1;//判断符号

if(first == '-' || first == '+')

index = 1;//如果字符串的第一个字符为符号,则从 index=1处开始寻找数字

for(val = 0.0; index < operand.length() && isdigit(operand.charAt(index)) ; index++)

val = val * 10.0 + (operand.charAt(index) - '0');

if(index < operand.length() && operand.charAt(index) == '.')

index++;//若有小数点, 跳过小数点寻找数字

for(power = 1.0; index < operand.length() && isdigit(operand.charAt(index)); index++)

{

val = val*10.0 + (operand.charAt(index) - '0');

power *= 10.0;//相当于记录小数点后面的位数

}

return sign * val / power;

}

可借助它实现字符串转换成整数的功能。

public static int atoi(String operand){

return (int)atof(operand);

}

JAVA将数字字符串强制转换成整型变量----求参数之和实验代码&lpar;附流程图&rpar;

一.设计思想 先将参数个数输出,并利用循环结果将参数逐个输出,再将字符串强制转化成整型,利用循环结构相加求和 二.程序流程图 三.源程序代码 package demo; public class Co ...

java 数字转换成字符串

一.各种数字类型转换成字符串型:  public static void main(String[] args) { double value = 123456.123; String str = S ...

js字符串转换成数字与数字转换成字符串的实现方法

转载:点击查看地址 js字符串转换成数字 将字符串转换成数字,得用到parseInt函数.parseInt(string) : 函数从string的开始解析,返回一个整数. 举例:parseInt(' ...

java算法:统计数字-将数字转换成字符串,然后使用字符串String&period;valueOf&lpar;&rpar;方法进行判断

题目: 计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值. 样例 样例 1: 输入: k = 1, n = 1 输出: 1 解释: 在 [0, 1] 中,我们发现 1 出现了 ...

c&plus;&plus;将数字转换成固定长度的字符串

c++将数字转换成固定长度的字符串 将数字转换为字符串,且设置为固定长度的,不足补零. string num2str(int i) { ]; sprintf(ss,"%04d",i ...

js字符串转换成数字,数字转换成字符串

转自网络,忘记出处了. js字符串转换成数字 将字符串转换成数字,得用到parseInt函数. parseInt(string) : 函数从string的开始解析,返回一个整数. 举例:parseIn ...

C&num; 数字转换成汉字大写 数值转换成汉字大写

1.数字转换成汉字大写 public string NumToChinese(string x) { //数字转换为中文后的数组 //转载请注明来自 http://www.shang11.com st ...

python中数字转换成字符串

数字转换成字符串: num=123 str='%d' %num str就变成了"123"

算法--java实现将数字转换成人民币大写(迅雷面试题)

今天去迅雷面试,是个数字转换成人民币的算法题: public class Rmb { /** * 人民币的基本信息和操作 * * @author soyoungboy * @version 1.0 * ...

随机推荐

Dictionary Learning&lpar;字典学习、稀疏表示以及其他&rpar;

第一部分 字典学习以及稀疏表示的概要 字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是稀疏字典学习(Sparse Di ...

innodb log file size 配置估算以及修改

root@localhost:(none) 06:22:17>pager grep seq PAGER set to 'grep seq' root@localhost:(none) 06:30 ...

玩转JS插件系列

说明:本系列文章只是通过学习JS插件源码来巩固自己的JS知识,不涉及任何商业目的,如有侵犯版权请尽快告知 一.UI 背景 对话框和灯箱 筛选及排序 反馈 弹出层 悬停 布局 图表 加载 圆边 滚动 标 ...

mac里边配置android开发环境,intellij开发工具:

1 在android的官网下载 android sdk的mac版 http://developer.android.com/sdk/index.html  选择mac的版本 下载后打开sdk-mana ...

PHP学习笔记06——面向对象版图形计算器

index.php 用于显示页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值