# Kuinka muuntaa Python-merkkijonot float-tyyppisiksi

Python-merkkijonon muuntaminen float-tyyppiseksi voi auttaa välttämään virheitä, jotka johtuvat ei-numeeristen merkkijonojen sisällyttämisestä aritmeettisiin operaatioihin.

## Millaiset Python-merkkijonot voidaan muuntaa float-tyyppisiksi?

Jos haluat muuntaa Python-merkkijonon float-tyyppiseksi, merkkijonolla on oltava **kelvollinen numeerinen esitys muodossa, joka on kelluva desimaaliarvo**. Tämä tarkoittaa, että se voi sisältää desimaalimuodossa olevia lukuja, mukaan lukien desimaalipisteet ja tieteellinen merkintätapa (kuten `"3.14"` tai `"2.7e-3"`). Se ei kuitenkaan voi sisältää ylimääräisiä merkkejä, välilyöntejä tai merkkejä, jotka eivät edusta numeerisia arvoja. Jos se sisältää, muunnos ei onnistu.

Merkkijono-kelluva-muunnos on perustoiminto, joka sisältyy kaikkiin Python-versioihin. Joidenkin menetelmien ja toimintojen toiminnassa voi kuitenkin olla hienoisia eroja eri versioissa. Pidä silmällä muunnoksissa mahdollisesti ilmeneviä virheitä. Esimerkiksi merkkijonon syöttäminen, joka ei edusta kelvollista lukua, aiheuttaa virheen. Erityisiä arvoja, kuten `NaN` (ei luku) ja `Infinity`, ei voi muuntaa float-tyyppisiksi. Tämä tarkoittaa, että muunnoksia käyttävien kehittäjien on osattava käsitellä virheitä asianmukaisesti. Yksi tapa tehdä tämä on käyttää **try/except-lohkoja** virheiden havaitsemiseen ja niihin reagoimiseen.

## Kuinka muuntaa Python-merkkijonoja float()-funktiolla

`float()` on **sisäänrakennettu Python-menetelmä**, joka muuntaa merkkijonot liukulukuiksi. Sitä käytetään usein muuttamaan käyttäjän syöttämät merkkijonot numeerisiksi, jotta syötettyjä tietoja voidaan käyttää laskelmissa tai numeerisissa operaatioissa. Ohjelmissa, jotka käsittelevät erilaisia tietoja, `float()` käytetään varmistamaan tietojen yhdenmukaisuus muuntamalla arvot numeeriseen muotoon.

Python-merkkijonojen muuntamiseksi float-tyyppisiksi käytä `float()` ja syötä kelvollinen merkkijono argumenttina:

```python
str1 = "3.1416"
float_value = float(str1)
print(float_value) # Output: 3.1416
```

Voit myös muuntaa muut numeeriset tyypit, kuten `int` ja `complex`, liukuluvuksi suorittamalla ne `float()` kautta.

Try/except-lohkoja voidaan käyttää **virheellisten käyttäjän syötteiden** havaitsemiseen, kun merkkijonoja muunnetaan liukulukuiksi:

```python
while True:
    user_input = input("Enter a number: ")
    try:
        float_value = float(user_input)
        print("Entered number as float:", float_value)
        break # Exit the loop if the conversion was successful
    except ValueError:
        print("Invalid input! Please enter a numeric value.")
        # The loop continues to prompt for valid input
```

Yllä oleva koodi on **silmukka, joka kehottaa käyttäjiä syöttämään numeron**. Sen jälkeen se yrittää muuntaa kyseisen arvon liukuluvuksi. Try-lohkossa `float(user_input)` tarkoittaa käyttäjän syöttämän merkkijonon muuntamista liukuluvuksi. Jos muunnos onnistui, numero tallennetaan kohtaan `float_value` ja palautetaan. Sitten lause `break` lopettaa silmukan ja jatkaa ohjelman suorittamista.

Jos merkkijonon muuntamisessa float-tyyppiseksi syntyy **ValueError-virhe**, except-lohkon koodi suoritetaan. Tämä voi tapahtua, jos käyttäjä syöttää arvon, jota ei voi muuntaa float-tyyppiseksi, kuten kirjaimen. Tällöin näyttöön tulee viesti, että syöttö on virheellinen, ja silmukka pyytää syöttämään kelvollisen arvon uudelleen.

## Kuinka muuntaa Python-merkkijonot float-tyyppisiksi NumPy:n avulla

Jos haluat muuntaa Python-merkkijonon float-tyyppiseksi \*\*NumPy:\*\*llä, voit käyttää funktiota `numpy.float64()`. Se antaa sinulle 64-bittisen liukuluvun.

```python
import numpy as np
string_value = "3.1416"
float_value = np.float64(string_value)
print(float_value) # Output: 3.1416
```

Ensin sinun on **tuotava NumPy skriptiisi,** jos se ei ole vielä asennettu. Sen jälkeen voit käyttää NumPyä soveltamaan funktiota `numpy.float64()` merkkijonoon `string_value` muuntaaksesi sen 64-bittiseksi liukuluvuksi.

## Kuinka käyttää str()-funktiota

Jos taas haluat muuntaa float-tyyppisen arvon merkkijonoksi, voit käyttää `str()`. Tämä funktio **muuntaa muut arvot merkkijonoiksi**.

```python
float_number = 3.1416
string_number = str(float_number)
print(string_number) # Output: "3.1416"
```

Yllä olevassa esimerkissä float-arvo `3.1416` muunnetaan merkkijonoksi `"3.1416"` käyttämällä `str()`.

`str()` on hyödyllinen myös useiden float-arvojen yhdistämisessä f-merkkijonoilla ( Python-merkkijonomuoto).

```python
float_value1 = 3.1416
float_value2 = 2.7182
float_value3 = 1.6180
string_concatenation = f"Concatenation of: {str(float_value1)}, {str(float_value2)}, and {str(float_value3)}"
print(string_concatenation) # Concatenation of: 3.1416, 2.7182, and 1.6180
```

Huomaa, että kun muunnat float-tyyppisiä muuttujia merkkijonoiksi `str()`, tuloksena oleva merkkijono esitetään tekstinä eikä sitä voi enää käyttää numeerisissa laskelmissa tai matemaattisissa operaatioissa. Jos haluat käyttää sitä laskelmissa, sinun on muutettava se takaisin numeeriseen muotoon (kuten float-tyyppiseksi muuttujaksi).

Vinkki Lue muista muunnoksista digitaalisesta oppaastamme. Selitämme, kuinka [Python-merkkijonot](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/python-merkkijonojen-muuntaminen-listoiksi/) muunnetaan [listoiksi](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/python-merkkijonojen-muuntaminen-listoiksi/) ja [Python-merkkijonot datetime-objekteiksi](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/muunna-merkkijonot-paeivaemaeaerae-ja-aikamuotoon-pythonissa/).


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/python-merkkijonojen-muuntaminen-kelluviksi-desimaaleiksi/](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/python-merkkijonojen-muuntaminen-kelluviksi-desimaaleiksi/) for AI/LLM consumption.