


Comment convertir la notation scientifique en nombres en php
php将科学计数法转数字的实现方法:首先通过if语句判断指定的数值是否为科学计数法;然后提取科学计数法中有效的数据;接着正式处理该数据;最后调用“convert_scientific_number_to_normal”方法实现转换即可。
推荐:《PHP视频教程》
PHP将科学计数法转换为正常的数字
每天,都会遇到些稀奇古怪的BUG,然后有遇到一个数字变成科学计数法的问题。问题来源于当前输出的一个数字太大了,然后存不下了。比如
echo 14735037137891444444; echo 0.00000000000000000000000000001;
然后输出的结果为:
1.4735037137891E+19 1.0E-29
这种情况也算常见了,只是数字太大或太小导致的,然后数据库的存储字段直接是字符串,结果就出现了种种神奇的问题。
然后就在网上找了个同样神奇的函数,确实有效,但也满坑的。然后就自己写了个,逻辑有点复杂,但没涉及到数字运算,精度应该是有保证的。
<?php /** * 将科学计数法的数字转换为正常的数字 * 为了将数字处理完美一些,使用部分正则是可以接受的 * @author loveyu * @param string $number * @return string */ function convert_scientific_number_to_normal($number) { if(stripos($number, 'e') === false) { //判断是否为科学计数法 return $number; } if(!preg_match( "/^([\\d.]+)[eE]([\\d\\-\\+]+)$/", str_replace(array(" ", ","), "", trim($number)), $matches) ) { //提取科学计数法中有效的数据,无法处理则直接返回 return $number; } //对数字前后的0和点进行处理,防止数据干扰,实际上正确的科学计数法没有这个问题 $data = preg_replace(array("/^[0]+/"), "", rtrim($matches[1], "0.")); $length = (int)$matches[2]; if($data[0] == ".") { //由于最前面的0可能被替换掉了,这里是小数要将0补齐 $data = "0{$data}"; } //这里有一种特殊可能,无需处理 if($length == 0) { return $data; } //记住当前小数点的位置,用于判断左右移动 $dot_position = strpos($data, "."); if($dot_position === false) { $dot_position = strlen($data); } //正式数据处理中,是不需要点号的,最后输出时会添加上去 $data = str_replace(".", "", $data); if($length > 0) { //如果科学计数长度大于0 //获取要添加0的个数,并在数据后面补充 $repeat_length = $length - (strlen($data) - $dot_position); if($repeat_length > 0) { $data .= str_repeat('0', $repeat_length); } //小数点向后移n位 $dot_position += $length; $data = ltrim(substr($data, 0, $dot_position), "0").".".substr($data, $dot_position); } elseif($length < 0) { //当前是一个负数 //获取要重复的0的个数 $repeat_length = abs($length) - $dot_position; if($repeat_length > 0) { //这里的值可能是小于0的数,由于小数点过长 $data = str_repeat('0', $repeat_length).$data; } $dot_position += $length;//此处length为负数,直接操作 if($dot_position < 1) { //补充数据处理,如果当前位置小于0则表示无需处理,直接补小数点即可 $data = ".{$data}"; } else { $data = substr($data, 0, $dot_position).".".substr($data, $dot_position); } } if($data[0] == ".") { //数据补0 $data = "0{$data}"; } return trim($data, "."); }
简单的测试数据
1.12E8 ------------- 112000000 1.12E3 ------------- 1120 1.12E2 ------------- 112 1.12E0 ------------- 1.12 1.12E-1 ------------ 0.112 1.12E-2 ------------ 0.0112 1.12E-8 ------------ 0.0000000112 0.112E1 ------------ 1.12 0.112E2 ------------ 11.2 0.112E4 ------------ 1120 0.112E-2 ----------- 0.00112 0000.112E-2 -------- 0.00112 0000.112000E-2 ----- 0.00112 .112E-2 ------------ 0.00112 .112E2 ------------- 11.2
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,
